#ifndef INCLUDE_ROBOS_PRETTYPRINT_HPP
#define INCLUDE_ROBOS_PRETTYPRINT_HPP

#include <iostream>

#include <robos/robos_version.hpp>
#include <robos/license.hpp>

#define PRINT_VERSION std::cout << __ROBOS_VERSION__ << std::endl;
#define PRINT_LICENSE std::cout << __ROBOS_LICENCE__ << std::endl;

namespace robos{


    class Prettyprint{
     public:
      Prettyprint(){}
      virtual ~Prettyprint(){}
      
      virtual std::ostream& print(std::ostream&) const = 0;
    };
    
    template <typename object>
    std::ostream& operator<<(std::ostream&, const object&);    
}

#endif
